package com.yugao.fintech.libra.model.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yugao.fintech.libra.common.BasePlusPO;
import com.yugao.fintech.libra.common.tenant.core.DataIsolation;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.Date;

/**
 * sm(secret manage密钥管理): 访问密钥（类似于用户的登录密码）
 */
@Getter
@Setter
@ToString
@TableName("access_key")
@DataIsolation(filterTenant = true, tableName = "access_key")
public class AccessKey extends BasePlusPO {
    public static LambdaQueryWrapper<AccessKey> lqw() {
        return Wrappers.lambdaQuery();
    }

    /**
     * 用于标识访问者的身份
     */
    @TableId
    private Long id;

    /**
     * 用户id, 关联的用户id
     */
    private Long userId;

    /**
     * 密钥名称
     */
    private String name;

    /**
     * 用于标识 API 调用者身份，可以简单类比为用户名 <br/>
     * 一个 SecretId 对应唯一的 SecretKey ，而 SecretKey 一般会用来生成请求签名 Signature。
     */
    private String secretId;

    /**
     * 用于验证 API 调用者的身份，可以简单类比为密码
     */
    private String secretKey;

    /**
     * 最后访问时间
     */
    private Date lastAccessTime;

    /**
     * 状态,1正常 , 0禁用
     */
    private String status;
}
